﻿/*
整数的因子数 
Time Limit:2000MS  Memory Limit:32768K


Description:
找出整数的所有因子数。一个整数n的因子数为包含它自身的所有因子的个数。例如：12的因子数为6(1,2,3,4,6,12)。 

Input:
输入数据中含有一些整数n（1≤n＜2^32）。 
Output:
对于每个n，列出其所有因子数，每个n加上冒号单独列一行。 
Sample Input:
11 22 33 24
Sample Output:
11: 2
22: 4
33: 4
24: 8
*/

#include <iostream>
#include <vector>
#include <algorithm>
#include <cstdlib>
#include <cmath>
using namespace std;

int main(int argc, char * argv[])
{
	vector<unsigned> v;
	v.reserve(128);
	for(unsigned n; cin>>n && n; v.push_back(n));
	
	unsigned maximum=*max_element(v.begin(), v.end());
	vector<unsigned> primes;
	primes.reserve((int)sqrt((double)maximum)/2);
	primes.push_back(2);
	primes.push_back(3);
	primes.push_back(5);

	unsigned integer=5;
	unsigned gap=2;
	while (integer<=maximum)
	{
		integer+=gap;
		gap=6-gap;
		bool is_prime=true;
		for (unsigned i=2; primes[i]*primes[i]<=integer && is_prime; ++i)
			if(0==integer%primes[i])
				is_prime=false;
		if(is_prime)
			primes.push_back(integer);
	}
	for (vector<unsigned>::iterator it=v.begin(); it!=v.end(); ++it)
	{
		unsigned long factors=1UL;
		for (unsigned i=0; primes[i]*primes[i]<=(*it); ++i)
		{
			unsigned f=0U;
			while (0==(*it)%primes[i])
			{
				*it/=primes[i];
				++f;
			}
			factors*=(1+f);
		}
		if(*it > 1)
			factors=2;
		cout<<factors<<endl;
	}


	return EXIT_SUCCESS;
}
